/**
 * <p>文件名:		PairObject.java</p>
 * <p>版权:		CopyrightTag</p>
 * <p>公司:		CompanyTag</p>
 * @author		周华彬(zhouhuabin@ctfo.com)
 */

package com.caits.lbs.framework.bean.common;

import java.io.Serializable;

import com.caits.lbs.framework.Framework;
import com.caits.lbs.framework.utils.JsonUtils;

/**
 * <p>
 * PairObject
 * </p>
 * <p>
 * 成对型的数据
 * </p>
 * 
 * @author 周华彬(zhouhuabin@ctfo.com)
 * @version 0.0.0
 *          <table style="border:1px solid gray;">
 *          <tr>
 *          <th width="100px">版本号</th><th width="100px">动作</th><th
 *          width="100px">修改人</th><th width="100px">修改时间</th>
 *          </tr>
 *          <!-- 以 Table 方式书写修改历史 -->
 *          <tr>
 *          <td>0.0.0</td>
 *          <td>创建类</td>
 *          <td>周华彬</td>
 *          <td>2008-10-14 下午05:37:59</td>
 *          </tr>
 *          <tr>
 *          <td>XXX</td>
 *          <td>XXX</td>
 *          <td>XXX</td>
 *          <td>XXX</td>
 *          </tr>
 *          </table>
 */
public class PairObject<T, E> implements Serializable, Cloneable {

	/** TODO */
	private static final long serialVersionUID = 1L;

	/** 对数据中的键 */
	private T key;

	/** 对数据中的值 */
	private E value;

	/**
	 * 构造器
	 */
	public PairObject() {

	}

	/**
	 * 构造器
	 * 
	 * @param key
	 */
	public PairObject(T key) {
		this.key = key;
	}

	/**
	 * 构造器
	 * 
	 * @param key
	 * @param value
	 */
	public PairObject(T key, E value) {
		this.key = key;
		this.value = value;
	}

	/**
	 * 字段 key 获取函数
	 * 
	 * @return the key : T
	 */
	public T getKey() {
		return key;
	}

	/**
	 * 字段 key 设置函数 : T
	 * 
	 * @param key
	 *            the key to set
	 */
	public void setKey(T key) {
		this.key = key;
	}

	/**
	 * 字段 value 获取函数
	 * 
	 * @return the value : E
	 */
	public E getValue() {
		return value;
	}

	/**
	 * 字段 value 设置函数 : E
	 * 
	 * @param value
	 *            the value to set
	 */
	public void setValue(E value) {
		this.value = value;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	public String toString() {
		if (Framework.Debug) {
			return  JsonUtils.getJsonStringFromObject(this).toString();
		} else {
			return super.toString();
		}
	}

	/**
	 * FIXME
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
